/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package vista.personas.pacientes;

import java.awt.event.WindowAdapter;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import modelo.personas.pacientes.DetalleHistoriaClinica;
import modelo.personas.pacientes.GestorPaciente;
import util.components.IGestorABM;

/**
 *
 * @author raul
 */
public class GestorTablaConsultas implements IGestorABM {
    private HistoriaClinicaDlg formulario;
    private GestorPaciente gestorModelo;

    public GestorTablaConsultas(GestorPaciente gestorModelo, HistoriaClinicaDlg formulario) {
        this.formulario = formulario;
        this.gestorModelo = gestorModelo;
    }

    public HistoriaClinicaDlg getFormulario() {
        return formulario;
    }

    @Override
    public void registrarNuevaEntidad() {
        GestorVistaConsultaDlg gestorEditor = new GestorVistaConsultaDlg(gestorModelo);
        gestorEditor.abrirFormulario();
        gestorEditor.getFormulario().addWindowListener(new GestorTablaConsultas.MyWindowListener());
    }

    @Override
    public void modificar(Object modelo) {
        GestorVistaConsultaDlg gestorEditor = new GestorVistaConsultaDlg(gestorModelo,modelo);
        gestorEditor.abrirFormulario();
        gestorEditor.getFormulario().addWindowListener(new GestorTablaConsultas.MyWindowListener());
    }

    @Override
    public void eliminar(Object modelo) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void imprimir(List datos) {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public int mostrarDialogoDeEliminacion() {
        throw new UnsupportedOperationException("Not supported yet.");
    }

    @Override
    public void cargarModeloComponente() {
        Object[] titulos={ "", "Fecha Diagnóstico","Profesional", "Diagnóstico"};
        getFormulario().cargarTitulosTabla(titulos);
    }

    @Override
    public void cargarDatos(Collection datos) {
        Iterator i=datos.iterator();
        while(i.hasNext()){
            DetalleHistoriaClinica d = (DetalleHistoriaClinica)i.next();
            Object[] fila={d,
                d.getFechaDiagnostico(),
                d.getProfesional(),
                d.getEnfermedad()};
            getFormulario().agregarFilaTabla(fila);
        }
    }
    
    public void cargarEnfermedades() {
        cargarModeloComponente();
        cargarDatos(gestorModelo.getModelo().getHistoriaClinica().getDetallesHistoriaClinica());
    }
    
    class MyWindowListener extends WindowAdapter {
        @Override
        public void windowClosed(java.awt.event.WindowEvent e){
            cargarEnfermedades();
        }
    }
    
}
